package TecMaster.Ui;

import java.awt.BorderLayout;

import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

import TecMaster.Cliente;
import TecMaster.Equipamentos.Equipamento;

/**
 * Classe responsavel pela tela de Relatorio do cliente.
 * 
 * @author Flavio Ramalho
 * 
 */
public class RelatorioDoCliente extends JFrame implements ActionListener {
	private static final long serialVersionUID = -2850090798196133538L;
	private JTextField tfNotaFiscal, tfCliente, tfEndereco, tfCpf,
			tfTipoEquipamento, tfDefeito, tfGarantia, tfMarca, tfCodigo,
			tfDataChegada, tfDataSaida;
	private JPanel panel, panelCliente, panelEquipamento;
	private JButton botaoConcluir;

	/**
	 * Construtor de relatorioDoCliente
	 * 
	 * @param telaDeOpcoes
	 *            a tela de opcoes
	 * @param equipamento
	 *            o equipamento a ser imprimido na consulta
	 * @param cliente
	 *            o cliente a ser imprimido na consulta
	 */
	public RelatorioDoCliente(final Opcoes telaDeOpcoes,
			Equipamento equipamento, Cliente cliente) {
		super("TecMaster - Relatorio Cliente");
		setIconImage(Toolkit.getDefaultToolkit().getImage(
				getClass().getResource("/imagens/TM.png")));
		panel = new JPanel(null);
		panel.setBackground(Color.LIGHT_GRAY);
		setBounds(new java.awt.Rectangle(0, 0, 300, 300));
		getContentPane().setLayout(new BorderLayout());
		getContentPane().add(panel, BorderLayout.CENTER);

		// CLIENTE
		panelCliente = new JPanel(null);
		panelCliente.setBackground(Color.LIGHT_GRAY);
		panelCliente.setBorder(new TitledBorder("Cliente"));
		panelCliente.setBounds(25, 15, 415, 100);

		tfCliente = new JTextField();
		tfCliente.setEditable(false);
		tfCliente.setText(cliente.getNome());
		tfCliente.setBounds(30, 20, 225, 25);

		tfEndereco = new JTextField();
		tfEndereco.setEditable(false);
		tfEndereco.setText(cliente.getEndereco());
		tfEndereco.setBounds(30, 55, 360, 25);

		tfCpf = new JTextField();
		tfCpf.setEditable(false);
		tfCpf.setText(cliente.getCpf());
		tfCpf.setBounds(265, 20, 125, 25);

		panelCliente.add(tfCliente);
		panelCliente.add(tfEndereco);
		panelCliente.add(tfCpf);

		// EQUIPAMENTO
		panelEquipamento = new JPanel(null);
		panelEquipamento.setBackground(Color.LIGHT_GRAY);
		panelEquipamento.setBorder(new TitledBorder("Equipamento"));
		panelEquipamento.setBounds(25, 130, 415, 180);

		tfTipoEquipamento = new JTextField();
		tfTipoEquipamento.setEditable(false);
		tfTipoEquipamento.setText("Tipo: "
				+ equipamento.getClass().getName().replace(
						"TecMaster.Equipamentos.", ""));
		tfTipoEquipamento.setBounds(30, 25, 175, 25);

		tfMarca = new JTextField();
		tfMarca.setEditable(false);
		tfMarca.setText("Marca: " + equipamento.getMarca());
		tfMarca.setBounds(230, 25, 155, 25);

		tfDefeito = new JTextField();
		tfDefeito.setEditable(false);
		tfDefeito.setText(("Defeito: " + equipamento.getDefeito()).replace("_",
				" "));
		tfDefeito.setBounds(30, 60, 175, 25);

		tfGarantia = new JTextField();
		tfGarantia.setEditable(false);
		tfGarantia.setText("Garantia: " + equipamento.stringGarantia());
		tfGarantia.setBounds(230, 60, 110, 25);

		tfNotaFiscal = new JTextField();
		tfNotaFiscal.setEditable(false);
		tfNotaFiscal.setText("Nota Fiscal: " + equipamento.getNumNotaFiscal());
		tfNotaFiscal.setBounds(30, 130, 175, 25);

		tfCodigo = new JTextField();
		tfCodigo.setEditable(false);
		tfCodigo.setText("Codigo: " + equipamento.getCodigo());
		tfCodigo.setBounds(230, 130, 110, 25);

		tfDataChegada = new JTextField();
		tfDataChegada.setEditable(false);
		tfDataChegada.setText("Chegada: "
				+ new SimpleDateFormat("dd/MM/yyyy").format(equipamento
						.getDataDeChegada().getTime()));
		tfDataChegada.setBounds(30, 95, 175, 25);

		tfDataSaida = new JTextField();
		tfDataSaida.setEditable(false);
		tfDataSaida.setText("Saida: "
				+ new SimpleDateFormat("dd/MM/yyyy").format(equipamento
						.getDataDeSaida().getTime()));
		tfDataSaida.setBounds(230, 95, 155, 25);

		panelEquipamento.add(tfDataChegada);
		panelEquipamento.add(tfDataSaida);
		panelEquipamento.add(tfCodigo);
		panelEquipamento.add(tfNotaFiscal);
		panelEquipamento.add(tfGarantia);
		panelEquipamento.add(tfDefeito);
		panelEquipamento.add(tfTipoEquipamento);
		panelEquipamento.add(tfMarca);

		panel.add(panelCliente);
		panel.add(panelEquipamento);

		// CONCLUIR
		botaoConcluir = new JButton("Concluir");
		botaoConcluir.setIcon(new ImageIcon(getClass().getResource(
				"/imagens/accept.png")));
		botaoConcluir.setBounds(185, 330, 100, 40);
		botaoConcluir.addActionListener(this);
		botaoConcluir.addActionListener(this);
		panel.add(botaoConcluir);

		pack();
		setSize(475, 425);
		setResizable(false);
		setVisible(true);
		setLocationRelativeTo(null);
		addWindowListener(new java.awt.event.WindowAdapter() {
			public void windowClosing(java.awt.event.WindowEvent evt) {
				telaDeOpcoes.setVisible(true);
				dispose();
			}
		});
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == botaoConcluir)
			dispose();
	}

}
